#ifndef _WIDGETSDESCRIPTOR_H_
#define _WIDGETSDESCRIPTOR_H_

#include <stdint.h>
#include <SECore/Signal.h>

namespace SEngine
{

    struct WidgetsDescriptor
    {
        enum WidgetTypes : uint64_t
        {
            SE_None             = 0,
            SE_AssetsView       = 1 << 0,
            SE_SceneView        = 1 << 1,
            SE_ProfilerView     = 1 << 2,
            SE_MaterialView     = 1 << 3,
            SE_MaterialEditor   = 1 << 4,
            SE_ControlBar       = 1 << 5,
            SE_ConsoleView      = 1 << 6,
            SE_AttributeView    = 1 << 7,
            SE_SceneManager     = 1 << 8,
            SE_AnimationManager = 1 << 9,
            SE_AnimationClip    = 1 << 10,

            // DEBUG
            SE_DearImGuiDemo    = 1 << 31,

            SE_All =    SE_None | 
                        SE_AssetsView | 
                        SE_SceneView | 
                        SE_ProfilerView | 
                        SE_MaterialView | 
                        SE_MaterialEditor | 
                        SE_ControlBar | 
                        SE_ConsoleView | 
                        SE_AttributeView | 
                        SE_SceneManager |
                        SE_AnimationManager | 
                        SE_AnimationClip,
        };
        WidgetTypes types{SE_All};
        Signal<WidgetTypes&> SignalChange;
    };

} // namespace SEngine


#endif